A typical enterprise application server environment supports the deployment of software applications to a cluster of processing nodes. To provide high-availability in the event of abnormal application or node behavior, a particular application may require its data to be persisted in some manner, which in turn typically requires the use of a backend filesystem or similar persistent storage medium that is accessible to all of the nodes.
However, the above approach generally does not scale well with increasing number of processing nodes. For example, a set of nodes may attempt to persist data to the backend filesystem at a rate that collectively exceeds the maximum rate at which the filesystem can actually write the data. In such situations, adding yet more nodes to the cluster provides little benefit, since the applications must wait for the backend filesystem to complete its write operations.